if(!require("htmltools")) install.packages("htmltools")
if(!require("remotes")) install.packages("remotes")
if(!require("MultiEWCE")) remotes::install_github("neurogenomics/MutltiEWCE", dependencies = TRUE)
res <- MultiEWCE::prioritise_targets()
## Prioritising gene targets.
## Importing existing file: ... phenotype_to_genes.txt
## Adding term definitions.
## Adding level-3 ancestor to each HPO ID.
## Prioritised targets: step='start'
## - rows: 435,204
## - phenotypes: 5,652
## - celltypes: 77
## Filtering @ q-value <= 0.05
## Prioritised targets: step='q_threshold'
## - rows: 7,648
## - phenotypes: 2,580
## - celltypes: 77
## Filtering @ fold-change >= 1
## Prioritised targets: step='fold_threshold'
## - rows: 7,648
## - phenotypes: 2,580
## - celltypes: 77
## Getting absolute ontology level for 2,580 HPO IDs.
## Prioritised targets: step='keep_ont_levels'
## - rows: 7,648
## - phenotypes: 2,580
## - celltypes: 77
## Annotating phenos with Onset.
## Importing existing file: ... phenotype.hpoa
## Importing existing file: ... phenotype.hpoa
## Prioritised targets: step='keep_onsets'
## - rows: 7,489
## - phenotypes: 2,520
## - celltypes: 77
## Annotating phenos with Tiers.
## Prioritised targets: step='keep_tiers'
## - rows: 718
## - phenotypes: 132
## - celltypes: 66
## Annotating phenos with Modifiers
## Prioritised targets: step='severity_threshold'
## - rows: 673
## - phenotypes: 127
## - diseases: 16
## - celltypes: 66
## Annotating phenotype frequencies.
## Prioritised targets: step='pheno_frequency_threshold'
## - rows: 573
## - phenotypes: 104
## - diseases: 15
## - celltypes: 64
## 33 / 64 of cell types kept.
## Prioritised targets: step='keep_celltypes'
## - rows: 362
## - phenotypes: 89
## - diseases: 15
## - celltypes: 33
## Filtering by gene size.
## Converting phenos to GRanges.
## Importing existing file: ... phenotype_to_genes.txt
## Loading required namespace: ensembldb
## Gathering gene metadata
## Loading required namespace: EnsDb.Hsapiens.v75
## Prioritised targets: step='keep_seqnames'
## - rows: 54,679
## - phenotypes: 89
## - genes: 3,616
## 218 / 3,616 genes kept.
## Prioritised targets: step='gene_size'
## - rows: 2,794
## - phenotypes: 87
## - genes: 218
## Prioritised targets: step='keep_biotypes'
## - rows: 2,794
## - phenotypes: 87
## - genes: 218
## Filtering by specificity_quantile.
## Filtering by mean_exp_quantile.
## Annotating gene frequencies.
## Importing existing file: ... genes_to_phenotype.txt
## Prioritised targets: step='gene_frequency_threshold'
## - rows: 11,477
## - phenotypes: 86
## - diseases: 14
## - celltypes: 32
## - genes: 217
## Prioritised targets: step='keep_specificity_quantiles'
## - rows: 309
## - phenotypes: 61
## - diseases: 12
## - celltypes: 27
## - genes: 62
## Prioritised targets: step='keep_mean_exp_quantiles'
## - rows: 309
## - phenotypes: 61
## - diseases: 12
## - celltypes: 27
## - genes: 62
## Sorting rows.
## Finding top 20 gene targets per: HPO_ID, CellType
## Prioritised targets: step='top_n'
## - rows: 309
## - phenotypes: 61
## - diseases: 12
## - celltypes: 27
## - genes: 62
## Prioritised targets: step='end'
## - rows: 309
## - phenotypes: 61
## - diseases: 12
## - celltypes: 27
## - genes: 62
Here are the top gene targets based on the default filtering/sorting
criterion of prioritise_targets.
MultiEWCE::create_dt(res$top_targets)
## Loading required namespace: DT
Here is a report that shows how many phenotypes/celltypes/genes
remained after each step within the prioritise_targets
pipeline.
MultiEWCE::create_dt(res$report)
Generate a network from the top phenotype-celltype-gene associations.
vn_top <- MultiEWCE::prioritise_targets_network(
top_targets = res$top_targets,
save_path = here::here("reports","top_targets_network.html"),
show_plot = FALSE)
## Loading required namespace: visNetwork
## Loading required namespace: igraph
## Creating network.
## Creating plot.
## Saving plot ==> /var/folders/zq/h7mtybc533b1qzkys_ttgpth0000gn/T//RtmpPLSBE1/fileb4b7343f6e5a_prioritise_targets_network.html
# visNetwork::visExport(vn_top$plot, type = "pdf", loadDependencies = T)
# visNetwork::renderVisNetwork(vn_top$plot)
# pagedown::chrome_print(input = here::here("reports","top_targets_network.html"),
# output = here::here("reports","top_targets_network.pdf"),
# format = "pdf")
webshot::webshot(here::here("reports","top_targets_network.html"),
zoom = 1,
vwidth = 2000,
vheight = 1000,
file = path.expand("~/Downloads/ex.pdf"))
htmltools::includeHTML("https://github.com/neurogenomics/RareDiseasePrioritisation/raw/master/reports/top_targets_network.html")
df_agg <- MultiEWCE::agg_results(
phenos = res$top_targets,
count_var = "CellType",
group_var = c("Phenotype","ontLvl",
"tier","tier_auto",
"ancestor","ancestor_name",
"disease_characteristic","DiseaseNames",
"Onset","Onset_earliest","Onset_score_mean","Onset_score_min",
"pheno_freq_mean","pheno_freq_min",
"Severity_score_mean","Severity_score_min")
)
## Aggregating results by group_var='Phenotype'Aggregating results by group_var='ontLvl'Aggregating results by group_var='tier'Aggregating results by group_var='tier_auto'Aggregating results by group_var='ancestor'Aggregating results by group_var='ancestor_name'Aggregating results by group_var='disease_characteristic'Aggregating results by group_var='DiseaseNames'Aggregating results by group_var='Onset'Aggregating results by group_var='Onset_earliest'Aggregating results by group_var='Onset_score_mean'Aggregating results by group_var='Onset_score_min'Aggregating results by group_var='pheno_freq_mean'Aggregating results by group_var='pheno_freq_min'Aggregating results by group_var='Severity_score_mean'Aggregating results by group_var='Severity_score_min'
## Adding HPO IDs.
## Importing existing file: ... phenotype_to_genes.txt
MultiEWCE::create_dt(df_agg)
Subset phenotypes to those included in intellectual disability, and are related to cognition.
df_intel <- HPOExplorer::add_ancestor(
phenos = res$top_targets[ancestor_name=="Abnormality of the nervous system",][,-c("ancestor","ancestor_name")],
lvl = 5)
## Adding level-5 ancestor to each HPO ID.
df_intel <- df_intel[
ancestor_name %in% c("Neurodevelopmental abnormality"),]
sort(unique(df_intel$Phenotype))
## [1] "Developmental regression" "Global developmental delay"
## [3] "Intellectual disability" "Intellectual disability, mild"
## [5] "Intellectual disability, moderate" "Intellectual disability, severe"
## [7] "Mild global developmental delay" "Neurodevelopmental abnormality"
## [9] "Neurodevelopmental delay" "Severe global developmental delay"
top_genes <- sort(table(df_intel$Gene),
decreasing = TRUE)
print(top_genes)
##
## SOX3 SOX2 POU3F4 FOXH1 RTL1 FOXG1 GSX2
## 17 12 9 8 7 6 6
## PIGY TUBB2A SLC18A3 ASCL1 GPR88 HOXA2 MAB21L2
## 6 6 5 4 4 4 4
## PROP1 SIX6 HES7 SNORD116-1 SNORD118 ROM1 TRH
## 4 4 3 3 3 2 2
## HPDL JAG1 KLRC4 PRRT2 RIPPLY2 RNU12
## 1 1 1 1 1 1
top_celltypes <- sort(table(unique(df_intel[,c("Phenotype","HPO_ID","CellType")])$CellType),
decreasing = TRUE)
print(top_celltypes)
##
## Excitatory neurons Granule neurons Inhibitory neurons Astrocytes
## 6 6 5 4
## ENS glia Ganglion cells Horizontal cells Oligodendrocytes
## 4 4 4 4
## Purkinje neurons Visceral neurons Amacrine cells ENS neurons
## 4 3 2 2
## Schwann cells Bipolar cells Photoreceptor cells
## 2 1 1
Now let’s lift some of the filters on phenotypes and cell types to recover a more extensive network.
res_all <- MultiEWCE::prioritise_targets(keep_onsets = NULL,
keep_tiers = NULL,
severity_threshold = NULL,
pheno_frequency_threshold = c(10,NA),
gene_frequency_threshold = c(10,NA),
keep_specificity_quantiles = seq(20,40),
keep_mean_exp_quantiles = seq(20,40))
## Prioritising gene targets.
## Importing existing file: ... phenotype_to_genes.txt
## Adding term definitions.
## Adding level-3 ancestor to each HPO ID.
## Prioritised targets: step='start'
## - rows: 435,204
## - phenotypes: 5,652
## - celltypes: 77
## Filtering @ q-value <= 0.05
## Prioritised targets: step='q_threshold'
## - rows: 7,648
## - phenotypes: 2,580
## - celltypes: 77
## Filtering @ fold-change >= 1
## Prioritised targets: step='fold_threshold'
## - rows: 7,648
## - phenotypes: 2,580
## - celltypes: 77
## Getting absolute ontology level for 2,580 HPO IDs.
## Prioritised targets: step='keep_ont_levels'
## - rows: 7,648
## - phenotypes: 2,580
## - celltypes: 77
## Annotating phenos with Onset.
## Importing existing file: ... phenotype.hpoa
## Prioritised targets: step='keep_onsets'
## - rows: 7,648
## - phenotypes: 2,580
## - celltypes: 77
## Annotating phenos with Tiers.
## Prioritised targets: step='keep_tiers'
## - rows: 7,648
## - phenotypes: 2,580
## - celltypes: 77
## Annotating phenos with Modifiers
## Prioritised targets: step='severity_threshold'
## - rows: 7,648
## - phenotypes: 2,580
## - diseases: 225
## - celltypes: 77
## Annotating phenotype frequencies.
## Prioritised targets: step='pheno_frequency_threshold'
## - rows: 7,566
## - phenotypes: 2,543
## - diseases: 225
## - celltypes: 76
## 37 / 76 of cell types kept.
## Prioritised targets: step='keep_celltypes'
## - rows: 3,849
## - phenotypes: 1,711
## - diseases: 177
## - celltypes: 37
## Filtering by gene size.
## Converting phenos to GRanges.
## Importing existing file: ... phenotype_to_genes.txt
## Gathering gene metadata
## Prioritised targets: step='keep_seqnames'
## - rows: 665,375
## - phenotypes: 1,711
## - genes: 4,329
## 289 / 4,329 genes kept.
## Prioritised targets: step='gene_size'
## - rows: 38,512
## - phenotypes: 1,485
## - genes: 289
## Prioritised targets: step='keep_biotypes'
## - rows: 38,512
## - phenotypes: 1,485
## - genes: 289
## Filtering by specificity_quantile.
## Filtering by mean_exp_quantile.
## Annotating gene frequencies.
## Importing existing file: ... genes_to_phenotype.txt
## Prioritised targets: step='gene_frequency_threshold'
## - rows: 114,312
## - phenotypes: 1,454
## - diseases: 170
## - celltypes: 37
## - genes: 289
## Prioritised targets: step='keep_specificity_quantiles'
## - rows: 28,299
## - phenotypes: 1,293
## - diseases: 160
## - celltypes: 37
## - genes: 250
## Prioritised targets: step='keep_mean_exp_quantiles'
## - rows: 28,299
## - phenotypes: 1,293
## - diseases: 160
## - celltypes: 37
## - genes: 250
## Sorting rows.
## Finding top 20 gene targets per: HPO_ID, CellType
## Prioritised targets: step='top_n'
## - rows: 23,293
## - phenotypes: 1,293
## - diseases: 160
## - celltypes: 37
## - genes: 250
## Prioritised targets: step='end'
## - rows: 23,293
## - phenotypes: 1,293
## - diseases: 160
## - celltypes: 37
## - genes: 250
Note that we set physics=FALSE to reduce the computation
that it takes to render the plot.
vn_all <- MultiEWCE::prioritise_targets_network(top_targets = res_all$top_targets,
save_path = here::here("reports",
"all_targets_network.html"),
physics = FALSE,
show_plot = FALSE)
## Creating network.
## Creating plot.
## Saving plot ==> /var/folders/zq/h7mtybc533b1qzkys_ttgpth0000gn/T//RtmpPLSBE1/fileb4b7260be8e0_prioritise_targets_network.html
htmltools::includeHTML("https://github.com/neurogenomics/RareDiseasePrioritisation/raw/master/reports/all_targets_network.html")
all_agg <- MultiEWCE::agg_results(phenos = res_all$top_targets,
count_var = "CellType",
group_var = "Phenotype")
## Aggregating results by group_var='Phenotype'
## Adding HPO IDs.
## Importing existing file: ... phenotype_to_genes.txt
MultiEWCE::create_dt(all_agg)
Get the phenotypes that were enriched in the greatest number of cell types.
#### All ontology level ####
head(sort(table(unique(res_all$top_targets[,c("Phenotype","CellType")])$Phenotype),
decreasing = TRUE))
##
## Abnormality of eye movement Intellectual disability
## 16 16
## Abnormal muscle physiology Abnormal muscle tone
## 15 15
## Abnormal nervous system physiology Abnormality of the musculature
## 15 15
#### Only lower ontology levels #####
all_targets <- HPOExplorer::add_ont_lvl(res_all$top_targets)
head(sort(table(unique(res_all$top_targets[ontLvl<=4,c("Phenotype","CellType")])$Phenotype),
decreasing = TRUE))
##
## Intellectual disability Hypotonia
## 16 15
## Neurodevelopmental abnormality Abnormal involuntary eye movements
## 15 14
## Neurological speech impairment Nystagmus
## 14 14
Get the cell types that were enriched in the greatest number of unique phenotypes.
head(sort(table(unique(res_all$top_targets[,c("Phenotype","CellType")])$CellType),
decreasing = TRUE))
##
## Excitatory neurons Antigen presenting cells Limbic system neurons
## 248 193 192
## Ganglion cells Cardiomyocytes ENS glia
## 169 167 167
Get the genes that were enriched in the greatest number of unique phenotypes.
head(sort(table(unique(res_all$top_targets[,c("Phenotype","Gene")])$Gene),
decreasing = TRUE))
##
## RNU4ATAC RMRP MAGEL2 B3GALT6 TMEM107 TREX1
## 198 197 194 190 184 178
Get the most common ancestors in the results.
ancestor_freq <- sort(table(res_all$top_targets$ancestor), decreasing = TRUE) |>
data.table::data.table() |>
`colnames<-`(c("HPO_ID","freq"))
ancestor_freq$Phenotype <- HPOExplorer::harmonise_phenotypes(phenotypes = ancestor_freq$HPO_ID)
MultiEWCE::create_dt(ancestor_freq)
Get all results.
res_all <- MultiEWCE::prioritise_targets(keep_onsets = NULL,
keep_tiers = NULL,
severity_threshold = NULL,
pheno_frequency_threshold = NULL,
gene_frequency_threshold = NULL,
keep_specificity_quantiles = NULL,
keep_mean_exp_quantiles = NULL)
## Prioritising gene targets.
## Importing existing file: ... phenotype_to_genes.txt
## Adding term definitions.
## Adding level-3 ancestor to each HPO ID.
## Prioritised targets: step='start'
## - rows: 435,204
## - phenotypes: 5,652
## - celltypes: 77
## Filtering @ q-value <= 0.05
## Prioritised targets: step='q_threshold'
## - rows: 7,648
## - phenotypes: 2,580
## - celltypes: 77
## Filtering @ fold-change >= 1
## Prioritised targets: step='fold_threshold'
## - rows: 7,648
## - phenotypes: 2,580
## - celltypes: 77
## Getting absolute ontology level for 2,580 HPO IDs.
## Prioritised targets: step='keep_ont_levels'
## - rows: 7,648
## - phenotypes: 2,580
## - celltypes: 77
## Annotating phenos with Onset.
## Importing existing file: ... phenotype.hpoa
## Prioritised targets: step='keep_onsets'
## - rows: 7,648
## - phenotypes: 2,580
## - celltypes: 77
## Annotating phenos with Tiers.
## Prioritised targets: step='keep_tiers'
## - rows: 7,648
## - phenotypes: 2,580
## - celltypes: 77
## Annotating phenos with Modifiers
## Prioritised targets: step='severity_threshold'
## - rows: 7,648
## - phenotypes: 2,580
## - diseases: 225
## - celltypes: 77
## Annotating phenotype frequencies.
## Prioritised targets: step='pheno_frequency_threshold'
## - rows: 7,648
## - phenotypes: 2,580
## - diseases: 225
## - celltypes: 77
## 37 / 77 of cell types kept.
## Prioritised targets: step='keep_celltypes'
## - rows: 3,882
## - phenotypes: 1,733
## - diseases: 177
## - celltypes: 37
## Filtering by gene size.
## Converting phenos to GRanges.
## Importing existing file: ... phenotype_to_genes.txt
## Gathering gene metadata
## Prioritised targets: step='keep_seqnames'
## - rows: 679,916
## - phenotypes: 1,733
## - genes: 4,329
## 289 / 4,329 genes kept.
## Prioritised targets: step='gene_size'
## - rows: 39,405
## - phenotypes: 1,503
## - genes: 289
## Prioritised targets: step='keep_biotypes'
## - rows: 39,405
## - phenotypes: 1,503
## - genes: 289
## Annotating gene frequencies.
## Importing existing file: ... genes_to_phenotype.txt
## Prioritised targets: step='gene_frequency_threshold'
## - rows: 120,041
## - phenotypes: 1,503
## - diseases: 171
## - celltypes: 37
## - genes: 289
## Prioritised targets: step='keep_specificity_quantiles'
## - rows: 120,041
## - phenotypes: 1,503
## - diseases: 171
## - celltypes: 37
## - genes: 289
## Prioritised targets: step='keep_mean_exp_quantiles'
## - rows: 120,041
## - phenotypes: 1,503
## - diseases: 171
## - celltypes: 37
## - genes: 289
## Sorting rows.
## Finding top 20 gene targets per: HPO_ID, CellType
## Prioritised targets: step='top_n'
## - rows: 47,285
## - phenotypes: 1,503
## - diseases: 171
## - celltypes: 37
## - genes: 285
## Prioritised targets: step='end'
## - rows: 47,285
## - phenotypes: 1,503
## - diseases: 171
## - celltypes: 37
## - genes: 285
Loss of previously present mental abilities, generally in adults. Synonyms: Cognitive decline, Cognitive decline, progressive, Intellectual deterioration, Mental deterioration, Progressive cognitive decline
Not included in prioritse_targets outputs by default
because: - “specificity_quantile” (median=6) and “mean_exp_quantile”
(median=6) are quite low for most genes associated with “Mental
deterioration”
md_targets <- res_all$top_targets[Phenotype=="Mental deterioration" & q<=0.05]
sort(table(md_targets[CellType %in% c("Amacrine cells","Ganglion cells")]$Gene),
decreasing = TRUE)
##
## SNORD118 APOE CHCHD10 CSTB FTL GLUD2 HSD17B10 HTRA2
## 4 2 2 2 2 2 2 2
## KCNJ11 NDUFAF3 NHLRC1 SCO2 SDHAF1 TIMM8A TINF2 TREX1
## 2 2 2 2 2 2 2 2
## TYROBP UBQLN2
## 2 2
results <- MultiEWCE::load_example_results()
## Importing existing file: ... phenotype_to_genes.txt
rci_targets <-results[Phenotype=="Recurrent Neisserial infections" & q<=0.05]
p2g <- HPOExplorer::load_phenotype_to_genes()
## Importing existing file: ... phenotype_to_genes.txt
data.table::setnames(p2g,"ID","HPO_ID")
rci_targets <- data.table::merge.data.table(rci_targets,
p2g[,c("HPO_ID","Gene")],
by="HPO_ID")
MultiEWCE::create_dt(rci_targets)
MultiEWCE::agg_results(rci_targets)
## Aggregating results by group_var='CellType'
## CellType n_phenotype n_genes genes
## 1: AFP ALB positive cells 1 7 C7; C5; C6; C8B; CFB; CFI; MBL2
## 2: Hepatoblasts 1 7 C7; C5; C6; C8B; CFB; CFI; MBL2
## mean_fold_change mean_q mean_sd_from_mean phenotype
## 1: 11.517 0.008 8.388 Recurrent Neisserial infections
## 2: 9.902 0.013 7.449 Recurrent Neisserial infections
utils::sessionInfo()
## R version 4.2.1 (2022-06-23)
## Platform: x86_64-apple-darwin17.0 (64-bit)
## Running under: macOS Big Sur ... 10.16
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRlapack.dylib
##
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] MultiEWCE_0.1.3 remotes_2.4.2 htmltools_0.5.4
##
## loaded via a namespace (and not attached):
## [1] utf8_1.2.3 R.utils_2.12.2
## [3] tidyselect_1.2.0 RSQLite_2.2.20
## [5] AnnotationDbi_1.60.0 htmlwidgets_1.6.1
## [7] grid_4.2.1 BiocParallel_1.32.5
## [9] munsell_0.5.0 codetools_0.2-18
## [11] DT_0.27 colorspace_2.1-0
## [13] Biobase_2.58.0 filelock_1.0.2
## [15] highr_0.10 knitr_1.42
## [17] rstudioapi_0.14 orthogene_1.4.1
## [19] stats4_4.2.1 SingleCellExperiment_1.20.0
## [21] ggsignif_0.6.4 MatrixGenerics_1.10.0
## [23] GenomeInfoDbData_1.2.9 bit64_4.0.5
## [25] rprojroot_2.0.3 coda_0.19-4
## [27] vctrs_0.5.2 treeio_1.22.0
## [29] generics_0.1.3 xfun_0.37
## [31] BiocFileCache_2.6.0 R6_2.5.1
## [33] GenomeInfoDb_1.34.8 pals_1.7
## [35] AnnotationFilter_1.22.0 bitops_1.0-7
## [37] cachem_1.0.6 gridGraphics_0.5-1
## [39] DelayedArray_0.24.0 assertthat_0.2.1
## [41] promises_1.2.0.1 BiocIO_1.8.0
## [43] scales_1.2.1 gtable_0.3.1
## [45] processx_3.8.0 ontologyPlot_1.6
## [47] ensembldb_2.22.0 rlang_1.0.6
## [49] rtracklayer_1.58.0 rstatix_0.7.2
## [51] lazyeval_0.2.2 dichromat_2.0-0.1
## [53] broom_1.0.3 BiocManager_1.30.19
## [55] yaml_2.3.7 reshape2_1.4.4
## [57] HPOExplorer_0.99.4 abind_1.4-5
## [59] GenomicFeatures_1.50.4 ggnetwork_0.5.10
## [61] crosstalk_1.2.0 backports_1.4.1
## [63] httpuv_1.6.8 tools_4.2.1
## [65] ggplotify_0.1.0 statnet.common_4.8.0
## [67] ggplot2_3.4.0 ellipsis_0.3.2
## [69] jquerylib_0.1.4 paintmap_1.0
## [71] BiocGenerics_0.44.0 Rcpp_1.0.10
## [73] plyr_1.8.8 visNetwork_2.1.2
## [75] progress_1.2.2 zlibbioc_1.44.0
## [77] purrr_1.0.1 RCurl_1.98-1.10
## [79] ps_1.7.2 prettyunits_1.1.1
## [81] ggpubr_0.5.0 S4Vectors_0.36.1
## [83] SummarizedExperiment_1.28.0 grr_0.9.5
## [85] here_1.0.1 magrittr_2.0.3
## [87] data.table_1.14.6 ProtGenerics_1.30.0
## [89] matrixStats_0.63.0 hms_1.1.2
## [91] patchwork_1.1.2 mime_0.12
## [93] evaluate_0.20 xtable_1.8-4
## [95] XML_3.99-0.13 EWCE_1.6.0
## [97] IRanges_2.32.0 compiler_4.2.1
## [99] biomaRt_2.54.0 tibble_3.1.8
## [101] maps_3.4.1 crayon_1.5.2
## [103] R.oo_1.25.0 ggfun_0.0.9
## [105] later_1.3.0 tidyr_1.3.0
## [107] aplot_0.1.9 DBI_1.1.3
## [109] ExperimentHub_2.6.0 gprofiler2_0.2.1
## [111] dbplyr_2.3.0 rappdirs_0.3.3
## [113] babelgene_22.9 EnsDb.Hsapiens.v75_2.99.0
## [115] Matrix_1.5-3 car_3.1-1
## [117] piggyback_0.1.4 cli_3.6.0
## [119] R.methodsS3_1.8.2 parallel_4.2.1
## [121] igraph_1.3.5 GenomicRanges_1.50.2
## [123] pkgconfig_2.0.3 GenomicAlignments_1.34.0
## [125] plotly_4.10.1 xml2_1.3.3
## [127] ggtree_3.6.2 bslib_0.4.2
## [129] webshot_0.5.4 XVector_0.38.0
## [131] yulab.utils_0.0.6 callr_3.7.3
## [133] stringr_1.5.0 digest_0.6.31
## [135] graph_1.76.0 Biostrings_2.66.0
## [137] rmarkdown_2.20 HGNChelper_0.8.1
## [139] tidytree_0.4.2 restfulr_0.0.15
## [141] curl_5.0.0 shiny_1.7.4
## [143] Rsamtools_2.14.0 rjson_0.2.21
## [145] lifecycle_1.0.3 nlme_3.1-161
## [147] jsonlite_1.8.4 carData_3.0-5
## [149] network_1.18.1 mapproj_1.2.11
## [151] viridisLite_0.4.1 limma_3.54.1
## [153] fansi_1.0.4 pillar_1.8.1
## [155] ontologyIndex_2.10 lattice_0.20-45
## [157] homologene_1.4.68.19.3.27 KEGGREST_1.38.0
## [159] fastmap_1.1.0 httr_1.4.4
## [161] interactiveDisplayBase_1.36.0 glue_1.6.2
## [163] RNOmni_1.0.1 png_0.1-8
## [165] ewceData_1.6.0 BiocVersion_3.16.0
## [167] bit_4.0.5 Rgraphviz_2.42.0
## [169] stringi_1.7.12 sass_0.4.5
## [171] blob_1.2.3 AnnotationHub_3.6.0
## [173] memoise_2.0.1 dplyr_1.1.0
## [175] ape_5.6-2